System and method for providing supplemental information related to a television program

ABSTRACT

Television programs are represented by program interface objects (PIOs) within an interactive television system. The PIOs provide a visual indicator for quick identification of the represented television program, attributes providing information concerning the represented television program, and actions that may be performed on or in connection with the represented television program. The PIOs may be sorted, filtered, and/or managed based on user-provided criteria. The PIOs may also be used to selectively retrieve supplemental information related to a television program, initiate a commercial transaction, establish a chat session, and the like.

RELATED APPLICATIONS

[0001] This application is a continuation-in-part of U.S. patentapplication Ser. No. 09/909,468, filed Jul. 19, 2001, for “ObjectRepresentation of Television Programs within an Interactive TelevisionSystem,” with inventor Thomas P. McKenna, Jr., which is herebyincorporated by reference.

BACKGROUND

[0002] 1. Field of the Invention

[0003] The present invention relates generally to the field ofinteractive television systems. More specifically, the present inventionrelates to a system and method for providing supplemental informationrelated to a television program.

[0004] 2. Description of Related Background Art

[0005] Due to the ever-increasing number of channels offered by cabletelevision and satellite networks, an electronic program guide (EPG) hasbecome a common feature of many set top boxes (STBs). Conventional EPGsdisplay schedule information for television programs in a grid-basedformat. One axis of the EPG typically corresponds to channels orstations, while the other axis corresponds to time slots. Rectangularelements formed within the grid represent specific television programs.

[0006] While EPGs have numerous advantages over conventional printedguides (such as TV Guide®), EPGs are still based on the channel/timeslot model, which is of diminishing importance today. For example, wherea viewer has access to over 500 channels, he or she is not interested inthe fact that the latest episode of Friends® is being shown on Channel498. Rather, the viewer would simply like to know when the program isbeing broadcast and allow the entertainment system to automaticallyswitch to the appropriate channel.

[0007] With the advent of digital video recorders (DVRs), even theconcept of broadcast time is becoming irrelevant. Ideally, a viewerwould simply like to instruct the entertainment system to record thenext episode of Friends®, which the viewer can then watch at aconvenient time.

[0008] Forcing a viewer to search through a grid consisting, forexample, of over 500 rows (corresponding to channels) and possiblythousands of columns (corresponding to time slots) is no longeracceptable. Given the wide variety of entertainment options and thelimited amount of time available to individuals for entertainment, anyadvancement increasing the convenience of an entertainment system wouldbe highly advantageous.

[0009] Accordingly, what is needed is a system and method that overcomesthe problems and disadvantages of the prior art. In particular, thesystem and method should provide convenient access to availableprogramming within an entertainment system without requiring the use ofa conventional, grid-based EPG.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Non-exhaustive embodiments of the invention are described withreference to the figures, in which:

[0011]FIG. 1 is a block diagram of a communication system;

[0012]FIG. 2 is an illustration of an interactive television system;

[0013]FIG. 3 is a block diagram of hardware components of a set top box(STB);

[0014]FIG. 4 illustrates a conventional electronic program guide (EPG);

[0015]FIG. 5 is a block diagram of a plurality of program interfaceobjects (PIOs) within a memory of an STB;

[0016]FIG. 6 is an expanded block diagram of a PIO;

[0017]FIG. 7 is a block diagram of a system utilizing PIOs to representtelevision programs;

[0018]FIG. 8 is a user interface for interacting with PIOs;

[0019]FIG. 9 is a block diagram of various functional modules forprocessing actions associated with a PIO;

[0020]FIG. 10 is a block diagram illustrating use of a PIO to record anassociated television program;

[0021]FIG. 11 is a user interface illustrating visual indicators of PIOswithin a calendar;

[0022]FIG. 12 is a block diagram illustrating use of a PIO to display apreviously recorded television program;

[0023]FIG. 13 is a block diagram illustrating display of an attribute ofa PIO;

[0024]FIG. 14 is a block diagram of a system for filtering a set of PIOsaccording to user-defined filtering criteria;

[0025]FIG. 15 is a block diagram illustrating transmission of PIOsbetween entertainment systems;

[0026]FIG. 16 is a block diagram illustrating use of a PIO to displaysupplemental information related to a television program represented bya PIO;

[0027]FIG. 17 is a block diagram illustrating use of a PIO toautomatically purchase a product;

[0028] FIGS. 18-19 are block diagrams illustrating use of a PIO toestablish a chat session;

[0029]FIG. 20 is a block diagram illustrating use of a PIO to providesupplemental information during a broadcast of a television programrepresented by the PIO;

[0030]FIG. 21 is a block diagram illustrating use of a PIO to providesupplemental information related to a television program to be broadcastin the future;

[0031]FIG. 22 is a user interface illustrating supplemental informationprovided in conjunction with visual indicators for stored PIOs; and

[0032]FIG. 23 is a block diagram of a system for providing supplementalinformation related to a television program represented by a PIO.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0033] The present invention solves the foregoing problems anddisadvantages by using program interface objects (PIOs) to representtelevision programs within an entertainment system, such as interactivetelevision system.

[0034] In one embodiment, each PIO includes a plurality of actions andattributes. Actions correspond to various operations that may beperformed on or in connection with the television program represented bythe PIO. For example, one action may schedule the recording of therepresented television program, while another action may play back therepresented television program if it was previously recorded. Actionsmay be embodied as program code, in a machine-independent format, suchas Java or Javascript, that may be executed, for example, by an STB foran interactive television system.

[0035] Attributes contain information about the television programrepresented by the PIO. For example, one attribute of a televisionprogram may correspond to the program's name, while another attributemay correspond to the program's broadcast time.

[0036] Certain attributes may contain meta-data relating to the PIO, thetelevision program, or both. For example, one attribute may indicate thesize of the corresponding PIO. Another attribute may indicate theencoding format of the television program.

[0037] Attributes may be used to sort, filter, prioritize, or otherwiseorganize a set of PIOs. Moreover, certain attributes may be used in thecontext of certain actions. For example, an action for recording atelevision program may need to access attributes containing the channel,starting time, and running time of the television program.

[0038] PIOs may be implemented using various technologies. For instance,a PIO may be implemented as a JavaBean object. Alternatively, a PIO maybe embodied as a Distributed Component Object Model (DCOM) object or aneXtensible Markup Language (XML) object. The present invention is notlimited to a particular object format.

[0039] In one implementation, each PIO also includes a visual indicator,such as an icon, which is displayed in a graphical user interface (GUI)to facilitate user interaction with the PIO. The GUI may display aplurality of visual indicators corresponding to a set of PIOs. Using aremote control or other selection mechanism, a user may select a PIO byits corresponding visual indicator. Further, a user may select an actionassociated with the PIO, which then may be executed by the STB.

[0040] In one embodiment, an STB or other system may be populated withvisual indicators of a set of PIOs selected from a larger set ofavailable PIOs. The set of available PIOs may be filtered based onuser-defined filtering criteria. For example, a user may filter the setof available PIOs for ones relating to sporting events.

[0041] In certain embodiments, PIOs may be transmitted betweeninteractive television systems, personal computers, mobile devices, andthe like. For example, a PIO may be attached to an e-mail message andsent via the Internet to another system where it may be used to performvarious actions on, or provide information concerning, a representedtelevision program. Alternatively, a PIO may be sent via infrared (IR)or radio frequency (RF) transmission from one portable entertainmentdevice, such as a Personal Digital Assistant (PDA), to another.

[0042] In one embodiment, a PIO may be used to provide supplementalinformation related to a television program. For example, an attributemay comprise a link to a web page associated with the televisionprogram. The PIO may be used to direct a browser to the web pageindicated by the link. Alternatively, a PIO may include a link to ane-commerce website. The link may identify, for instance, a particularproduct associated with the television program. Furthermore, attributesof the PIO containing personal information about a user may be used toautomatically initiate a sale for the identified product. In anotherconfiguration, a link of a PIO may connect a user to a chat roomassociated with the television program.

[0043] Thus, PIOs are an alternative mechanism for providing access toavailable television programming and supplemental information using aninteractive television system, without the necessity of a conventionalEPG. A user need not be concerned with such details as channel orbroadcast time, as was necessary in conventional systems. The user needonly select an icon for a PIO and select the desired action.

[0044] Reference throughout this specification to “one embodiment” or“an embodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment of the present invention. Thus, appearancesof the phrases “in one embodiment” or “in an embodiment” in variousplaces throughout this specification are not necessarily all referringto the same embodiment.

[0045] Furthermore, the described features, structures, orcharacteristics may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, user selections, networktransactions, database queries, database structures, etc., to provide athorough understanding of embodiments of the invention. One skilled inthe relevant art will recognize, however, that the invention can bepracticed without one or more of the specific details, or with othermethods, components, materials, etc. In other instances, well-knownstructures, materials, or operations are not shown or described indetail to avoid obscuring aspects of the invention.

[0046] Referring now to FIG. 1, there is shown a communication system100. In one implementation, the system 100 relies on a broadband network101 for communication, such as a cable television network or a directsatellite broadcast (DBS) network, although other networks are possible.

[0047] The system 100 may include a plurality of set top boxes (STBs)102 located, for instance, at customer homes or offices. Generally, anSTB 102 is a consumer electronics device that serves as a gatewaybetween a customer's television 104 and the network 101. In alternativeembodiments, an STB 102 may be embodied more generally as a personalcomputer (PC), an advanced television 104 with STB functionality, oranother type of client terminal.

[0048] An STB 102 receives encoded television signals and otherinformation from the network 101 and decodes the same for display on thetelevision 104 or other display device, such as a computer monitor. Asits name implies, an STB 102 is typically located on top of, or in closeproximity to, the television 104.

[0049] Each STB 102 may be distinguished from other network componentsby a unique identifier, number, code, or address, examples of whichinclude an Internet Protocol (IP) address (e.g., an IPv6 address), aMedia Access Control (MAC) address, or the like. Thus, video signals andother information may be transmitted from the network 101 to a specificSTB 102 by specifying the corresponding address, after which the network101 routes the transmission to its destination using conventionaltechniques.

[0050] A remote control 106 is provided, in one configuration, forconvenient remote operation of the STB 102 and the television 104. Theremote control 106 may use infrared (IR), radio frequency (RF), or otherwireless technologies to transmit control signals to the STB 102 and thetelevision 104. Other remote control devices are also contemplated, suchas wired or wireless mice (not shown).

[0051] Additionally, a keyboard 108 (either wireless or wired) isprovided, in one embodiment, to allow a user to rapidly enter textinformation into the STB 102. Such text information may be used fore-mail, instant messaging (e.g. text-based chat), or the like. Invarious embodiments, the keyboard 108 may use infrared (IR), radiofrequency (RF), or other wireless technologies to transmit keystrokedata to the STB 102.

[0052] Each STB 102 may be coupled to the network 101 via a broadcastcenter 110. In the context of a cable television network, a broadcastcenter 110 may be embodied as a “head-end”, which is generally acentrally-located facility within a community where televisionprogramming is received from a local cable TV satellite downlink orother source and packaged together for transmission to customer homes.In one configuration, a head-end also functions as a Central Office (CO)in the telecommunication industry, routing video signals and other datato and from the various STBs 102 serviced thereby.

[0053] A broadcast center 110 may also be embodied as a satellitebroadcast center within a direct broadcast satellite (DBS) system. A DBSsystem may utilize a small 18-inch satellite dish, which is an antennafor receiving a satellite broadcast signal. Each STB 102 may beintegrated with a digital integrated receiver/decoder (IRD), whichseparates each channel, and decompresses and translates the digitalsignal from the satellite dish to be displayed by the television 104.

[0054] Programming for a DBS system may be distributed, for example, bymultiple high-power satellites in geosynchronous orbit, each withmultiple transponders. Compression (e.g., MPEG) may be used to increasethe amount of programming that can be transmitted in the availablebandwidth.

[0055] The broadcast centers 110 may be used to gather programmingcontent, ensure its digital quality, and uplink the signal to thesatellites. Programming may be received by the broadcast centers 110from content providers (CNN®, ESPN®, HBO®, TBS®, etc.) via satellite,fiber optic cable and/or special digital tape. Satellite-deliveredprogramming is typically immediately digitized, encrypted and uplinkedto the orbiting satellites. The satellites retransmit the signal backdown to every earth-station, e.g., every compatible DBS system receiverdish at customers' homes and businesses.

[0056] Some broadcast programs may be recorded on digital videotape inthe broadcast center 110 to be broadcast later. Before any recordedprograms are viewed by customers, technicians may use post-productionequipment to view and analyze each tape to ensure audio and videoquality. Tapes may then be loaded into a robotic tape handling systems,and playback may be triggered by a computerized signal sent from abroadcast automation system. Back-up videotape playback equipment mayensure uninterrupted transmission at all times.

[0057] Regardless of the nature of the network 101, the broadcastcenters 110 may be coupled directly to one another or through thenetwork 101. In alternative embodiments, broadcast centers 110 may beconnected via a separate network, one particular example of which is theInternet 112. The Internet 112 is a “network of networks” and is wellknown to those skilled in the art. Communication over the Internet 112is accomplished using standard protocols, such as TCP/IP (TransmissionControl Protocol/Internet Protocol) and the like.

[0058] A broadcast center 110 may receive television programming fordistribution to the STBs 102 from one or more television programmingsources 114 coupled to the network 101. Preferably, television programsare distributed in an encoded format, such as MPEG (Moving PictureExperts Group). Various MPEG standards are known, such as MPEG-2,MPEG-4, MPEG-7, and the like. Thus, the term “MPEG,” as used herein,contemplates all MPEG standards. Moreover, other videoencoding/compression standards exist other than MPEG, such as JPEG,JPEG-LS, H.261, and H.263. Accordingly, the invention should not beconstrued as being limited only to MPEG.

[0059] Broadcast centers 110 may be used to enable audio and videocommunications between STBs 102. Transmission between broadcast centers110 may occur (i) via a direct peer-to-peer connection between broadcastcenters 110, (ii) upstream from a first broadcast center 110 to thenetwork 101 and then downstream to a second broadcast center 110, or(iii) via the Internet 112. For instance, a first STB 102 may send avideo transmission upstream to a first broadcast center 110, then to asecond broadcast center 110, and finally downstream to a second STB 102.

[0060] Of course, the communication system 100 illustrated in FIG. 1 ismerely exemplary, and other types of devices and networks may be usedwithin the scope of the invention.

[0061] Referring now to FIG. 2, there is shown an interactive television(ITV) system 200 according to an embodiment of the invention. Asdepicted, the system 200 may include an STB 102, a television 104 (orother display device), a remote control 106, and, in certainconfigurations, a keyboard 108.

[0062] The remote control 106 is provided for convenient remoteoperation of the STB 102 and the television 104. In one configuration,the remote control 106 includes a wireless transmitter 202 fortransmitting control signals (and possibly audio/video data) to awireless receiver 203 within the STB 102 and/or the television 104. Incertain embodiments, the remote control 106 includes a wireless receiver204 for receiving signals from a wireless transmitter 205 within the STB102. Operational details regarding the wireless transmitters 202, 205and wireless receivers 203, 204 are generally well known to those ofskill in the art.

[0063] The remote control 106 preferably includes a number of buttons orother similar controls. For instance, the remote control 106 may includea power button 206, an up arrow button 208, a down arrow button 210, aleft arrow button 212, a right arrow button 214, a “Select” button 216,an “OK” button 218, channel adjustment buttons 220, volume adjustmentbuttons 222, alphanumeric buttons 224, a “Help” button 226, and thelike.

[0064] In one embodiment, the remote control 106 includes a microphone242 for capturing audio signals. The captured audio signals may betransmitted to the STB 102 via the wireless transmitter 202. Inaddition, the remote control 106 may include a speaker 244 forgenerating audible output from audio signals received from the STB 102via the wireless receiver 204. In alternative embodiments, as shown inFIG. 3, the microphone 242 and/or speaker 244 may be integrated with theSTB 102.

[0065] In certain embodiments, the remote control 106 further includes avideo camera 246, such as a CCD (charge-coupled device) digital videocamera, for capturing video signals. In one implementation, the videocamera 246 is in electrical communication with the wireless transmitter202 for sending the captured video signals to the STB 102. Like themicrophone 242 and speaker 244, the video camera 246 may be integratedwith the STB 102, or attached to the STB 102, as in the depictedembodiment.

[0066] The various components of the remote control 106 may bepositioned in different locations for functionality and ergonomics. Forexample, as shown in FIG. 2, the speaker 244 may be positioned near the“top” of the remote control 106 (when viewed from the perspective ofFIG. 2) and the microphone 242 may be positioned at the “bottom” of theremote control 106. Thus, in one embodiment, a user may convenientlyposition the speaker 244 near the user's ear and the microphone 242 nearthe user's mouth in order to operate the remote control 106 in themanner of a telephone.

[0067] The optional keyboard 108 facilitates rapid composition of textmessages. The keyboard 108 includes a plurality of standard alphanumerickeys 236. In one configuration, the keyboard 108 includes a wirelesstransmitter (not shown), similar or identical to the wirelesstransmitter 202 of the remote control 106. The wireless transmittertransmits keystroke data from the keyboard 108 to the STB 102.Additionally, the keyboard 108 may include one or more of the buttonsillustrated on the remote control 106.

[0068] Alternatively, or in addition, a hands-free headset 248 may becoupled to the remote control 106 or the keyboard 108. The headset 248may be coupled using a standard headset jack 250. The headset 248 mayinclude a microphone 242 and/or speaker 244. Such a headset 248 may beused to reduce audio interference from the television 104 (improvingaudio quality) and to provide the convenience of hands-free operation.

[0069] Referring now to FIG. 3, there is shown a block diagram ofphysical components of an STB 102 according to an embodiment of theinvention. As noted above, the STB 102 includes a wireless receiver 203for receiving control signals sent by the wireless transmitter 202 inthe remote control 106 and a wireless transmitter 205 for transmittingsignals (such as audio/video signals) to the wireless receiver 204 inthe remote control 106.

[0070] The STB 102 also includes, in one implementation, a networkinterface 302 for communicating with the network 101 via the broadcastcenter 110. The interface 302 may include conventional circuitry forreceiving, demodulating, and demultiplexing MPEG packets. The interface302 may also include conventional modem circuitry for sending orreceiving data. For example, the interface 302 may conform to the DOCSIS(Data Over Cable Service Interface Specification) or DAVIC (DigitalAudio-Visual Council) cable modem standards.

[0071] In one configuration, one or more frequency bands (for example,from 5 to 30 MHz) may be reserved for upstream transmission. Digitalmodulation (for example, quadrature amplitude modulation or vestigialsideband modulation) may be used to send digital signals in the upstreamtransmission. Of course, upstream transmission may be accomplisheddifferently for different networks 101. Alternative ways to accomplishupstream transmission include using a back channel transmission, whichis typically sent via an analog telephone line, ISDN, DSL, or othertechniques.

[0072] The STB 102 also preferably includes a codec (encoder/decoder)304, which serves to encode audio/video signals into anetwork-compatible data stream for transmission over the network 101.The codec 304 also serves to decode a network-compatible data streamreceived from the network 101. The codec 304 may be implemented inhardware and/or software. Moreover, the codec 304 may use variousalgorithms, such as MPEG or Voice over IP (VoIP), for encoding anddecoding.

[0073] The STB 102 further includes a memory device 306, such as arandom access memory (RAM), for storing temporary data. Similarly, aread-only memory (ROM) may be provided for storing more permanent data,such as fixed code and configuration information.

[0074] In one embodiment, an audio/video (AV) controller 308 is providedfor converting digital audio/video signals into analog signals forplayback/display on the television 104. The A/V controller 308 may beimplemented using one or more physical devices, such as separategraphics and sound controllers. The A/V controller 308 may includegraphics hardware for performing bit-block transfers (bit-blits) andother graphical operations for displaying a graphical user interface(GUI) on the television 104.

[0075] In some implementations, the STB 102 may include a storage device310, such as a hard disk drive, optical storage device, RAM, compactflash card, etc. The storage device 310 may be configured to storeencoded incoming and outgoing video signals as well as televisionbroadcasts and retrieve the same at a later time for display. Thestorage device 310 may be configured, in one embodiment, as a digitalvideo recorder (DVR), enabling scheduled recording of televisionprograms, pausing (buffering) live video, etc. The storage device 310may also be used in various embodiments to store viewer preferences,parental lock settings, electronic program guide (EPG) data, passwords,e-mail messages, video messages, video greetings, and the like. In oneimplementation, the storage device 310 also stores an operating system(OS) for the STB 102, such as Windows CE® or Linux®.

[0076] As noted above, the STB 102 may include, in certain embodiments,a microphone 242 and a speaker 244 for capturing and reproducing audiosignals, respectively. The STB 102 may also include or be coupled to avideo camera 246 for capturing video signals. These components may beincluded in lieu of or in addition to similar components in the remotecontrol 106, keyboard 108, and/or television 104.

[0077] A CPU 312 controls the operation of the STB 102, including theother components thereof, which are coupled to the CPU 312 in oneembodiment via a bus 314. The CPU 312 may be embodied as amicroprocessor, a microcontroller, a digital signal processor (DSP) orother device known in the art. For instance, the CPU 312 may be embodiedas an Intele x86 processor. As noted above, the CPU 312 may performlogical and arithmetic operations based on program code stored withinthe memory 306 or the storage device 310.

[0078] Of course, FIG. 3 illustrates only one possible configuration ofan STB 102. Those skilled in the art will recognize that various otherarchitectures and components may be provided within the scope of theinvention. In addition, various standard components are not illustratedin order to avoid obscuring aspects of the invention.

[0079]FIG. 4 illustrates one implementation of a conventional ElectronicProgramming Guide (EPG) 402. As noted above, a typical EPG 402 includesa grid having two axes, one for time slots 404 and the other forchannels or stations 406. Rectangular elements 408 formed within thegrid correspond to specific television programs.

[0080] Generally, the navigation interface for a conventional EPG 402 isawkward and ill-suited to entertainment systems having more than a fewchannels. For example, a satellite STB may receive more than 500channels, requiring the user to scroll through many pages of informationto locate a desired program. Clearly, a conventional EPG 402 is based onthe channel/time slot model, which is of diminishing relevance today.

[0081] For example, where a viewer has access to over 500 channels, heor she is not in interested in the fact that the latest episode ofFriends® is being shown on Channel 498. Rather, the viewer would simplylike to know when the program is being broadcast and allow theentertainment system to automatically switch to the appropriate channel.

[0082] With the advent of digital video recorders (DVRs), even theconcept of broadcast time is becoming irrelevant. Ideally, a viewerwould like instruct the entertainment system to record the next episodeof Friends®, which the viewer can then watch at a convenient time.

[0083] In conventional systems, the EPG 402 may be generated from a textdata file 410 or the like containing raw schedule information. Forexample, each program element 408 in the EPG 402 may correspond to oneor more lines in the text data file 410. Unfortunately, storing rawschedule information in this manner severely limits the way in which theinformation may be used and communicated. For example, each system thatreceives the text data file 410 must be programmed to parse and displaythe information in a user-friendly format. The file 410, itself, doesnot include code or resources for using or displaying the information.

[0084]FIG. 5 illustrates an alternative to the conventional EPG 402 inaccordance with principles of the present invention. In one embodimentof the invention, program interface objects (PIOs) 502 are used torepresent television programs within an entertainment system, such as aninteractive television system 200. In the depicted embodiment, aplurality of PIOs 502 are stored within a memory 306 of an STB 102.However, various other systems and devices may be used to store PIOs502, such as personal digital assistants (PDAs), webpads, personalcomputers, and the like.

[0085] As noted above, a PIO 502 may include a plurality of actions 504and attributes 506. In one embodiment, actions 504 correspond to variousoperations that may be performed on or in connection with the televisionprogram represented by the PIO 502. For example, one action 504 mayschedule the recording of the represented television program, whileanother action may display the represented television program if it waspreviously recorded or is currently in progress. Of course each PIO 502may include a different set of actions 504 permitting the PIOs 502 to besorted and catagorized based on the different defined actions 504.

[0086] Actions 504 may be embodied as program code, in amachine-independent format, that may be executed, for example, by an STB102 for an interactive television system. Alternatively, actions 504 mayinclude resources that are used by program code within a STB 102 or thelike.

[0087] Attributes 506 contain information about the television programrepresented by the PIO 502. For example, one attribute 506 maycorrespond to a television program's name, while another attribute 506may correspond to the program's broadcast time. Certain attributes 506may contain meta-data related to the PIO 502, the represented televisionprogram, or both. For example, one attribute 506 may indicate the sizeof the PIO 502. Another attribute 506 may indicate the video encodingformat of the represented television program.

[0088] As described more fully hereafter, attributes 506 may be used tosort, filter, search, prioritize, or otherwise organize a set of PIOs502. Moreover, certain attributes 506 may be used in the context ofcertain actions 504. For example, an action 504 for recording atelevision program may need to access the attributes 506 containing thechannel, starting time, and running time of the television program.

[0089] Each of the attributes 506 in a PIO 502 may include a triplet ofinformation, e.g., the attribute name (Program Title, Program BroadcastTime, Program Broadcast Channel), the attribute's type (searchable text,time, executable code, GIF image, ATVEF triggers and their time markwithin the program, MIME, or the like), and the attribute's value. Insome cases, attributes 506 may include text in multiple languages toallow the PIO 502 to be used in different countries around the world.

[0090] PIOs 502 may be implemented using various technologies. Forinstance, a PIO 502 may be implemented as a JavaBean object.Alternatively, a PIO 502 may be embodied as a Distributed ComponentObject Model (DCOM) object or an extensible Markup Language (XML)object.

[0091] In one implementation, each PIO 502 also includes a visualindicator 506, such as an icon, animated image, or video clip, which isdisplayed in a graphical user interface (GUI) to facilitate userinteraction with the PIO 502. As illustrated in subsequent figures, theGUI may display a plurality of visual indicators 508 corresponding to aset of PIOs 502. Using a remote control 106 or other selectionmechanism, a user may select a PIO 502 by its corresponding visualindicator 508. Further, a user may select an action associated with thePIO 502 to be executed by the STB 102.

[0092] In one embodiment, PIOs 502 include program code in asubstantially machine-independent format. For example, JavaBean, DCOM,or XML objects generally do not require proprietary hardware so long asthe hardware executes a Java Virtual Machine (JVM), a DCOM server, anXML processor, or the like. The PIOs 502 may be created using a varietyof programming languages and protocols, such as Java, C++, Smalitalk,and other programming languages that support object-orientedprogramming.

[0093] Machine independence allows the PIOs 502 to be portable.Information and functionality associated with a particular televisionprogram are encapsulated within the PIOs 502. PIOs may be transferredbetween STBs 102 or other devices, such as personal computers andhand-held devices. PIOs 502 may also be stored in computer-readablemedia, such as CDs, diskettes, memory cards, memory sticks, or the like.

[0094] Of course, PIOs 502 may be configured in various ways, and may bereferred to using different terms, while still being considered withinthe scope of the invention. For example, “actions” may be termed“methods” or “functions”, and “attributes” may be referred to as“variables”, “state”, or “data”.

[0095]FIG. 6 illustrates an expanded view of a PIO 502 includingexamples of attributes 506, actions 504, and visual indicators 508. Forinstance, a typical PIO 502 may include such attributes 506 as title 506a, description 506 b, broadcast channel 506 c, rating 506 d (e.g., TV-G,TV-PG), start time 506 e, end time 506 f, running time 506 g, releaseyear 506 h, classification 506 i (e.g., drama, sit-com, sports),actor(s) 506 j, producer(s) 506 k, related Internet links 506 l, storagelocation 506 m, country of origin 506 n, language 506 o, etc. Of course,various other attributes 506 may be provided within the scope of theinvention.

[0096] In some cases, attributes 506 may be embodied as references toexternal data in the form of hyperlinks or the like. For example, wherea start time 506 e attribute contains a fixed start time (e.g., 8:00pm), an STB 102 may not be able to account for scheduling changes by atelevision source 114. Thus, in certain embodiments, the start timeattribute 506 e (and other such attributes 506), may include a link to aserver (not shown) that contains the up-to-date start time for thetelevision program. Thus, scheduling changes reflected in the serverwill be automatically recognized by all corresponding PIOs 502. This isparticularly advantageous in the context of a sports game that goes intoovertime. For example, the STB 102 can get updates from the broadcaster,allowing the STB 102 to extend the duration of the recording of theprogram.

[0097] In other embodiments, one or more attributes 506 of a PIO 502 maybe dynamically updated based on (possibly real-time) updates from abroadcaster using a transmission method that can be specified in the PIO502. The transmission methods can include, for instance, HTTP, FTP,e-mail, or an ATVEF trigger.

[0098] One particularly advantageous attribute 506 is the relatedInternet links attribute 506 l. The related Internet links attribute 506l may link a PIO 502 to an associated web site (e.g., a sponsored link),a chat room (e.g., real time chat about the television program beingwatched), or an e-commerce site.

[0099] In certain embodiments, one attribute 506 may comprise a link(not shown) to one or more other PIOs 502. This facilitates PIO linking,which is advantageous, for example, in the context of related PIOs 502,e.g., a miniseries. PIO linking allows PIOs 502 to be associated basedon characteristics besides those defined within the actions 504 andattributes 506 of each PIO 502. For example, PIOs 502 may be linkedbased on movies and television programs which discuss the subject ofwater rights in the western United States. Consequently, a PIO 502 forthe movie “Chinatown,” with actor Jack Nicholson, may be linked to a PIO502 for “Rider of Destiny,” with actor John Wayne.

[0100] A typical PIO 502 may also include various actions 504, such asan action 504 a for recording the associated television program. Asdescribed more fully below, the recording action 504 a may operate inconjunction with the CODEC 304 and storage device 310 of FIG. 3 todigitally record the television program when it is broadcast by atelevision source 114 or streaming video source 116. In addition, therecording action 504 may access the channel, start time, end time,and/or running time attributes 506 c, 506 e-g in order to facilitate therecording The instantiation of a PIO 502 as stored in the STB memory 306may contain additional, or updated data and may not be exactly the sameas the originally broadcast PIO 502. The recording action 504 a is anexample of this dynamic update of the stored copy of the PIO 502.

[0101] An action 504 b may also be provided for displaying therepresented television program on a television 104. If, for instance,the television program is currently being broadcast, the display action504 b may be configured to tune the STB 102 to the correct channel. If,however, the television program was previously broadcast and recorded(e.g., by the record action 504 a), the display action 504 b mayretrieve and display the stored television program. In one embodiment,the display action 504 accesses the storage location 506 m attribute tolocate a stored television program.

[0102] Various other actions 504 may include an action 504 b forreminding a user that a particular program is scheduled to be broadcastand/or reminding the user that the program has been recorded.Additionally, an action 504 d may be provided for displaying one or moreattributes 506 of the PIO 502 on the television 104 or other displaydevice. Moreover, an action 504 e may be included to allow a user torate and/or comment on the represented television program. An action 504f may also be provided to send a copy of the PIO 502 to another systemor device.

[0103] In some cases, actions 504 may be propagated between linked PIOs502. For example, a user may selection the record action 502 a of a PIO502 corresponding to a program in a mini-series. If the PIOs 502 of themini-series are linked (e.g., by an appropriate attribute 506 or thelike), then the same action 506 a may be executed by the linked PIOs 502as well.

[0104] Of course, numerous other attributes 506 and actions 504 may beprovided within the scope of the invention. Moreover, theobject-oriented nature of a PIO 502 allows for additional actions 504and attributes 506 to be dynamically added as necessary.

[0105] The PIO 502 may also include a visual indicator 508, such as agraphical icon, to facilitate interaction with the PIO 502 in thecontext of a GUI. A visual indicator 508 may alternatively, or inaddition, include a textual description of the television program, suchas the program's name.

[0106] A graphical visual indicator 508 is advantageous in that itovercomes language and illiteracy barriers presented by conventionalEPGs 402. For example, a child user may be unable to read a textdescription. However, a Big Bird® icon would be clearly recognizable asrepresenting Sesame Street®.

[0107] In certain embodiments, a PIO 502 may include an audibleindicator 509. The audible indicator 509 may include, for example, adescription of the television program associated with the PIO 502(similar to the description attribute 506 b), an advertisement, userinstructions, theme music for the television program or the like. Theaudible indicator 509 may be embodied as an audio clip or sample, whichis played back by the STB 102 when the PIO 502 is selected or when thecorresponding visual indicator 506 is displayed. The inclusion of anaudible indicator 509 is advantageous for people who are visuallydisabled or those who have difficulty reading.

[0108] Referring now to FIG. 7, there is shown a block diagram oflogical components of a system 700 that utilizes PIOs 502 to representtelevision programs. The depicted logical components may be implementedusing one or more of the physical components shown in FIG. 3.Additionally, or in the alternative, various logical components may beimplemented as software modules stored in the memory 306 and/or storagedevice 310 and executed by the CPU 312.

[0109] In one configuration, a plurality of PIOs 502 a-f may be storedwithin a memory, such as a memory 306 of an STB 102. A display component702 displays each visual indicator 508 of a PIO 502 on a television 104or other display device. The visual indicators 508 may be displayed inconnection with a GUI 704.

[0110] In certain embodiments, the displayed visual indicators 508 a-fmay be grouped in the GUI 704 within logical folders or the like,allowing a user to organize the visual indicators 508 a-f in any desiredmanner. For example, a user may group visual indicators 508 a-f withinsuch folders as “My sit-coms”, “My TV dramas”, “My sports”, etc., tofacilitate easy access thereto.

[0111] As described more fully below, a selection component 706 allows auser to select one or more PIOs 502 by selecting corresponding visualindicators 508. Thereafter, the selection component 706 allows a user tochoose one of the actions associated with the selected PIO 502. Theselection of an action 504 may be accomplished via a context-sensitivemenu or other suitable mechanism, as illustrated below.

[0112] As an example, suppose a PIO 502 a includes a number ofattributes 506, such as a title attribute 506 a (e.g., “Dallas v.Denver”), a channel attribute 506 c (“4 KTVX”), a start time attribute506 e (e.g., “Monday, 7:00 pm”), and an end time attribute 506 f(“Monday, 10:00 pm”). Further, suppose that the PIO 502 a includes arecord action 504 a, a display action 504 b, and an iconic visualindicator 508 a.

[0113]FIG. 8 illustrates an exemplary GUI 704 including visualindicators 508 a-f corresponding to the PIOs 502 a-f of FIG. 7. In theillustrated embodiment, a user selects visual indicator 508 a using, forexample, the arrow buttons 208-214 of the remote control 106. A pointer,selection outline, or other mechanism may be used to pick the desiredindicator 508 a.

[0114] In response to the selection, a context-sensitive menu 802 may bedisplayed listing the available actions 504 a-b for the PIO 502 a. Wherea large number of actions 504 are available, the menu 802 may displayonly the most popular or common actions 504, while providing a mechanismto display additional actions if desired.

[0115] In some cases, selecting an action 504 may result in the displayof various options 804 in the form of a sub-menu 806. The options 804may correspond to various parameters, features, or settings used by thecorresponding action 504. For example, the record action 504 a mayinclude two options 804 a-b, corresponding to record “Weekly” and record“Next Time Broadcast.” If the “Next Time Broadcast” option 804 b isselected, for instance, the record action 504 a may record the nextepisode of a television program, as opposed to recurring weekly episodes(in the case of TV drama or sit-com).

[0116] Of course, different selection mechanisms may be provided otherthan the context-sensitive menu 802 and sub-menu 806. For example, theselection component 706 may display a plurality of user-selectable icons(not shown) corresponding to different actions 504 and options 804.

[0117] Because each PIO 502 may be tailored to a particular televisionprogram, the actions 504 available in the context-sensitive menu 802 mayvary from program to program. Similarly, options 804 available in asub-menu 806 for a particular action 504 may vary from one program tothe next.

[0118] Referring to FIG. 9, the STB 102 may further include an actioncomponent 902 that executes a user-selected action 504. The actioncomponent 902 may be implemented, in various embodiments, in the contextof a Java Virtual Machine (JVM), a DCOM server, XML processor, or thelike. Of course, other implementations are possible.

[0119] To execute the selected action 504, the action component 902 mayinteract with various other logical components of the STB 102, such as arecording component 904, a scheduling component 906, and a playbackcomponent 908, as described below.

[0120] Briefly, the recording component 904 is configured to record atelevision program using, for example, the storage device 310. Thescheduling component 906 schedules recording tasks to record televisionprograms to be broadcast in the future. In addition, the schedulingcomponent 906 interacts with the recording component 904 to record adesired television program at the correct time and date in accordancewith a scheduled recording task. The playback component 908 isconfigured, in one embodiment, to display a television program storedwithin the storage device 310 or the like. Each of the above-describedcomponents may be implemented in the context of a digital videorecording (DVR) system, one example of which is TiVo®, available fromTiVo, Inc.

[0121] Suppose, as shown in FIG. 8, that a user selects the recordaction 504 a with the “Next Time Broadcast” option 804 b. In response tosuch selection, and as illustrated in FIG. 10, the starting time 506 e,ending time 506 f, and channel 506 c attributes may be provided to thescheduling component 906. Thereafter, the scheduling component 906schedules a recording event to record the television program. At thespecified time and date, the scheduling component 906 instructs therecording component 904 to record the television program on thespecified channel.

[0122] The recorded television program may be stored within the storagedevice 310 of the STB 102 or another suitable location. After theprogram is recorded, the stored location of the television program maybe placed in the storage location attribute 506 m of the PIO 502 a toallow subsequent access thereto.

[0123]FIG. 11 illustrates use of PIOs 502 in the context of a personalinformation manager (PIM) 1100, such as an adapted version of Microsoft®Outlook®. In one embodiment, when a television program represented by aPIO 502 is scheduled for recording, the scheduling component 906interacts with the PIM 1100 to display a visual indicator 508 of the PIO502 in a calendar, to-do list, or the like, provided by the PIM 1100.

[0124] Moreover, in one implementation, the scheduling component 906inserts reminders 1102 into the PIM 1100 to notify users concerningscheduled recordings. Similarly, reminders 1102 of upcoming televisionprograms may be noted on the calendar a day or two prior to thebroadcast date. In this manner, a user may quickly see which televisionprograms he or she plans to watch.

[0125] In certain embodiments, PIOs 502 may be dragged and dropped ontothe PIM 1100 using object linking and embedding (OLE), DCOM, ActiveX, orthe like. A result of dropping a PIO 502 on the PIM 1100 may be toschedule the program represented by the PIO 502 for recording.

[0126] While FIG. 11 illustrates use of PIOs 502 in a PIM 1100, theobject-oriented nature of the PIOs 502 allows them to interface with avariety of software applications. Moreover, PIOs may be used with avariety of electronic devices, including personal computers, cellphones, personal digital assistants (PDAs), pagers, telephones, and thelike. The portable nature of the PIOs 502 and flexibility availableprovide for a variety of uses for the PIOs 502. For example, an action504 may exist to call a user and deliver a voice synthesized reminder1102 one hour prior to a broadcast of the associated television program.The possibilities for actions 504 are endless.

[0127] As shown in FIG. 12, once a television program is recorded, itmay be retrieved and displayed in response to a user selection of thedisplay action 504 b shown in FIG. 8. In one embodiment, the location ofthe recorded television program is retrieved from the stored locationattribute 506 m and provided to the playback component 908. Thereafter,the playback component 908 retrieves the recorded program and plays backthe same on the television 104.

[0128] As shown in FIG. 13, an action 504 d may be provided fordisplaying one or more of the attributes of a PIO 502. The action 504 dand the desired attribute(s) 506 may be selected using thecontext-sensitive menu 802 and sub-menu 806 illustrated in FIG. 8,although the invention is not limited in this respect.

[0129] Suppose, for example, that a user selects the display attributeaction 504 d with the description attribute 506 b. In one embodiment,the description attribute 506 b is retrieved from the PIO 502 andprovided to the display component 702 or the like for display. Invarious embodiments, a selected attribute 506 may include text, audio,video, or the like. Thus, the various modules not shown but well knownin the art may be required for displaying or playing back the selectedattribute 506.

[0130]FIG. 14 illustrates an embodiment of a system 1400 providing a setof PIOs 502 to an interactive television system 200. PIOs 502 may beavailable from a variety of sources including, for example, a broadcastcenter 110, a television source 114 (such as a television network), aPIO server (not shown), and the like. The PIOs 502 may be transmittedfrom these sources, across a network 101, the Internet 112, or othernetwork connection, including a satellite link, to an STB 102.

[0131] In the depicted embodiment, a population component 914 isprovided for populating an STB 102 or the like with a user-selected setof PIOs 502. The population component 914 may be implemented within theSTB 102 (as shown), within a broadcast center 110, or the like.

[0132] In one embodiment, the population component 914 provides a filtercomponent 1402 for reducing an initial set 1404 of available PIOs 502 toa user-specified set 1405 that may be stored within the STB 102. Incertain embodiments, the initial set 1404 may include hundreds orthousands of PIOs 502 associated with corresponding television programs.Thus, reducing the initial set 1404 to a more manageable set 1405 isgenerally desirable.

[0133] The filter component 1402 may include or be associated withfiltering criteria 1406. The filtering criteria 1406 may comprise a setof user-defined rules for filtering the initial set 1404. For example, auser may specify that the population component 914 only retrieve PIOs502 having a start time 506 e of 7:00 pm or an end time 506 f of 10:00pm (e.g., primetime). Alternatively, a user may specify that thepopulation component 914 only retrieve PIOs 502 corresponding tosporting events. Of course, those skilled in the art recognize thatvarious other filtering criteria 1406 may be used, including logicaloperators (e.g., AND, OR, NOT) and the like.

[0134] The filtering component 1402 may also be used within an STB 102to divide the initial set 1404 based on different criteria, such as thegenres of the respective television programs, in order to transmit PIOs502 or information from PIOs 502 to auxiliary devices such as pagers,PDAs, personal computers, or telephone handsets that can receiveinformation and display it for the user.

[0135] As illustrated in FIG. 14, suppose PIOs 502 a-d belong to theinitial set 1404. The population component 914 applies the filteringcriteria 1406 (e.g., primetime) to each PIO 502 a-d. The PIOs 502 thatmatch the filtering criteria 1406 (e.g., PIO 502 a-b) are retrieved fromthe source and stored in the STB 102. As previously described, thedisplay component 702 may then display the corresponding visualindicators 508 a-b on the television 104.

[0136] The filtering component 1402 may also be used internally within aSTB 102 to organize the selected set 1405. For example, a user mayfurther divide the set 1405 based on different criteria 1406, such asthe genres of the respective television programs. This allows the userto organize the PIOs 502 using logical folders or the like.

[0137] As shown in FIG. 15, PIOs 502 may be transmitted from one systemto another. For example, a PIO 502 a within a first STB 102 a may betransmitted via the network 101 to second STB 102 b. Of course, othernetworks may be used, such as telephone and satellite networks (notshown). Additionally, PIOs 502 may be communicated between a variety ofelectronic devices, including personal computers, PDAs, telephones, cellphones, pagers, and the like.

[0138] In one embodiment, a communication component 1502 is providedwithin each STB 102 a-b or other systems or devices. The communicationcomponent 1502 may be embodied by various standard communication tools,such as Web browsers, e-mail clients, or the like. Moreover, variouscommunication protocols may be used, such as HTTP, FTP, SMTP, IMAP,which are well known to those skilled in the art.

[0139] In the illustrated embodiment, a user of the source STB 102 a mayselect the visual indicator 508 a of PIO 502 a. Thereafter, the user mayselect, for example, the send action 504 f from the context-sensitivemenu 802. The send action 504 f may include code for interacting withthe communication component 1502 to transmit a copy of the PIO 502 a tothe destination STB 102 b.

[0140] Alternatively, a PIO 502 may be communicated through the use ofportable computer-readable media, such as CD-ROMs, diskettes, memorycards, memory sticks, and the like. In one embodiment, the PIO 502, or acopy thereof, is placed on a computer-readable medium by a sourcesystem. Thereafter, the computer-readable medium is provided to thedestination system, where it is read into memory 306 and/or a storagedevice 310.

[0141] FIGS. 16-18 are high-level block diagrams illustrating varioustechniques for providing supplemental information related to televisionprograms using PIOs 502. While the following description makesparticular reference to STBs 102, the invention is not limited to STBs102 or interactive television systems 200 generally. A wide variety ofdevices may use, transport, create, or otherwise process PIOs 502,examples of which include personal computers, PDAs, webpads, etc.

[0142] As previously noted, PIOs 502 may be used, in certainembodiments, to provide supplemental information related to a televisionprogram. As used herein, supplemental information broadly refers to anytype of information, content, or service relating to a televisionprogram. Examples of supplemental information may include relatedarticles, close-ups, replays, outtakes, galleries, commercial tie-ins,games, sound clips, video clips, product information, chat servers, andthe like.

[0143] In certain embodiments, the supplemental information is externalto the PIO 502 (and possibly the STB 102), and the supplementalinformation is accessed through a link attribute 506 l. The link 506 lis an address or pointer, such as a Uniform Resource Locator (URL), forlocating and retrieving the supplemental information. A typical PIO 502may include one or more of such link attributes 506 l.

[0144] As shown in FIG. 16, a PIO 502 may include a link 506 l to a webpage 1602 related to the television program represented by a PIO 502. Insuch an embodiment, an STB 102 may launch a browser 1604, such asMicrosoft® Internet Explorer®, to display the web page 1602. Of coursethe STB 102 may launch software programs other than a browser 1604 forpresentation of the information available through the link 506 i. Thelink 506 i may indicate which software program should be launched. Forexample, a link 506 i to a FLASH animation file, e.g. demo.fla, maylaunch a FLASH animation player such as the FLASH player available fromMacromedia®.

[0145] As another example, the link 506 l shown in FIG. 16, e.g.,“http://sports.espn.go.com/nfl/mnf/index,” may direct the browser 1604to access a specific information server 1606, such as a web server. Thebrowser 1604 establishes communication with the information server 1606using known protocols, such as the HyperText Transfer Protocol (HTTP),the File Transfer Protocol (FTP), or the like. Once communication isestablished, the browser 1604 may request a specific web page 1602indicated by the link 506 l. The browser 1604 receives and displays theweb page 1602 on the television 104 or other display device. Of course,the user may further interact with the web page 1602 to explore newlinks and retrieve information referenced by the web page 1602.

[0146] In other embodiments, a variety of supplemental information maybe preloaded within the STB 102. This may occur, for example, duringoff-peak hours when communication bandwidth is more available. In suchan embodiment, the link 506 l may be embodied as a URL or a file namereferencing a cached web page or local file within a storage device 310of the STB 102.

[0147] As shown in FIG. 17, the link 506 l may be used to initiate acommercial transaction. For example, the link 506 l may include theaddress of a commercial server 1702 for selling goods or servicesrelated to a television program, a sponsor of the television program,etc. In certain embodiments, the commercial server 1702 may selllicenses to view the television program and/or provide a copy of thetelevision program, itself. As used herein, “television program” refersbroadly to any type of media program, including motion pictures,audio-only presentations, etc. Thus, the term “television program”should not be construed as being limited to broadcast television.

[0148] In the depicted embodiment, a user of an STB 102 may select avisual indicator 508 a corresponding to the PIO 502 a, which may bedisplayed in a graphical user interface (GUI) 1704. Selection of thevisual indicator 508 a may result in a context-sensitive menu 802 beingdisplayed, listing various actions 504 that may be performed withrespect to the PIO 502. For instance, as shown in FIG. 17, listedactions may include a buy action 504 g and a record action 504 a.Thereafter, the user may select, for example, the buy action 504 g froma context-sensitive menu 802.

[0149] In one embodiment, selecting the buy action 504 g results in asub-menu 806 being displayed, which lists various options 804corresponding to products available for sale. Of course, the PIO 502 mayinclude a plurality of links 506 l such that each option 804 maycorrespond to a different link 506 l. Furthermore, each link 506 l mayindicate a different commercial server 1702 available for purchasing aproduct.

[0150] As an example, a “Highlights” option 804 c may initiate atransaction for purchasing a DVD of highlights of a football game.Choosing the “Highlights” option 804 c on the sub-menu 806 may result inthe STB 102 establishing a connection with the commercial server 1702(identified by the corresponding link 506 l) via the network 101 usingstandard network protocols, such TCP/IP, UDP/IP, etc.

[0151] Once a connection is established, the STB 102 identifies theproduct a user desires to purchase. For example, in certain embodiments,the link 506 l includes an identifier for the product, e.g.“highlightsDVD.” Alternatively, the product identifier may be obtainedfrom another attribute 506.

[0152] In certain embodiments, the STB 102 may then automaticallyprovide necessary information about the user to complete the sale. Forexample, in certain configurations, the PIO 502 a includes additionalattributes 506 such as the user's name 506 p, address 506 q, paymentinformation 506 r, user ID (not shown), password (not shown), telephonenumber (not shown), etc. The STB 102 transmits (as illustrated by thedashed lines) the user information to the commercial server 1702. Oncethe user information is received, the commercial server 1702 may placean order and conduct other steps to ensure the product is delivered tothe user, including, for example, notifying a warehouse, manufacturer,and/or shipper. Of course, the STB 102 may prompt the user using the GUI1704 to authorize placing of the order. Upon receiving authorization,the STB 102 may then proceed to place an order.

[0153] In one embodiment, the PIO 502 a may include a user's paymentinformation 506 r, such as a credit card or bank account number, forpaying for the product. The payment information 506 r may be encrypted,using well known encryption algorithms, such as Secure Sockets Layer(SSL), prior to transmission to the commercial server 1702. In addition,for non-repudiation purposes, the user information may include a user'sdigital certificate.

[0154] In an alternative embodiment, the link 506 l may be used topurchase a license to view Video-on-Demand (VoD) content. For example, auser may select the “Outtakes” option 804 d to purchase, from a VoDserver (not shown), a license to view an “Outtakes” video. Once thelicense is purchased, a user may activate a display action 504 b to viewan “Outtakes” video stored, for example, at the broadcast center 110.

[0155] Of course, the transaction of FIG. 17 is merely illustrative of avariety of commercial transactions may be initiated or completed using aPIO 502, from purchasing insurance to subscribing to a magazine. Thetransaction need not be directly related to the television programrepresented by the PIO 502, but may relate, for example, to theprogram's sponsor.

[0156]FIG. 18 illustrates an alternative embodiment in which a link 506l is used to provide user interaction with a server, such as a chat(instant messaging) server, accessible via the network 101. For example,the link 506 l may be used to establish a chat session 1802, illustratedin FIG. 19, between the STB 102 and a chat server 1804.

[0157] In one embodiment, a user selects a visual indicator 508 adisplayed within a picture-in-picture window 1806. Thereafter the userselects a chat action 504 h from a context-sensitive menu 802. The STB102 then parses the link 506 l to identify the chat server 1804, chatroom, and other relevant information. For example, “www.espn.com” may bethe name of an Internet chat server 1804. Of course the name may betranslated to a network address. “Mnfchatroom.dll” may indicate thespecific chat room to connect to. “Guest” may be a login ID to allow theuser access to the chat room. In one embodiment, the STB 102 may alsosend a chat room alias 506 s, for example, “Chalky,” to conceal theuser's identity in the chat room and/or conference.

[0158] Alternatively, the link 506 i may indicate a specific chatconference which will host the chat session 1802. Generally, a chatconference comprises a chat forum which is organized to allow chatcommunicaiton for ad-hoc or short term topics of common interest amongusers. Instead of a chat room defined for a specific topic or genre, achat conference enables chat gatherings based on more dynamicallychanging subjects. A chat conference may be implemented using a specificchat room as a “conference room” for a chat conference on an particulartopic.

[0159] In the depicted embodiment, the STB 102 uses the informationcontained within the link 506 l to establish a chat session 1802 withthe chat server 1804, as shown in FIG. 19. For example, the STB 102 usesthe link 506 l to direct an instant messaging client (not shown) toestablish the chat session 1802. The instant messaging client mayinclude a graphical user interface 1902 displayable in conjunction withthe television program. The user may then interact with the instantmessaging client to exchange chat messages while viewing the televisionprogram.

[0160] In one embodiment, a PIO 502 may be configured to automaticallyprovide supplemental information referenced by the link 506 l at aparticular time. For example, as shown in FIG. 20, the PIO 502 may beconfigured to display a web page 1602 during at a time while thetelevision program is being broadcast. Of course, the PIO 502 mayinclude an action 504 (not shown) selectable by the user from a list ofother actions 504, discussed above, to present the supplementalinformation.

[0161] In one configuration, in response to a television program beingbroadcast, the STB 102 may automatically retrieve and display the webpage 1602 referenced by the link 506 l. As illustrated, the web page1602 listing the scores for other football games may be displayed alongside a football game currently being broadcast. The web page 1602 may beretrieved periodically during the program, at pre-programmed intervalsduring the program, etc., which may be defined by attributes within thePIO 502.

[0162] In another embodiment, as shown in FIG. 21, the link 506 l may beused to display a web page 1602 to promote a television program prior tothe television program being broadcast. For example, the STB 102 mayretrieve and display a web page 1602 associated with PIO 502 e toadvertise the television program, e.g. “Survivor,” before the televisionprogram is broadcast. In one configuration, the web page 1602 isdisplayed within a PIP window during another television program (e.g,during a preceding football game, as shown in FIG. 21).

[0163] As shown in FIG. 22, supplemental information may be provided ina graphical user interface (GUI) 2200 for organizing PIOs 502. The GUI2200 may display a plurality of folders 2202 a-e, which correspond tological folders (e.g., directories) or other similar mechanisms withinthe storage device 310. The displayed folders 2202 a-e may be organizedinto a folder hierarchy 2204, which mirrors a corresponding hierarchy oflogical folders within the storage device 310.

[0164] Each of the displayed folders 2202 a-c may be given descriptivenames, such as “Tonight”, “Drama”, “Sports”, etc. Of course, eachdisplayed folder 2202 a-c may include one or more sub-folders (notshown).

[0165] In certain embodiments, each user may have a separate folderhierarchy 2204. For example, a root node 2206 corresponding to aparticular user, e.g., “Susan”, may form the root of a particularhierarchy 2204. In other embodiments, a user's folder hierarchy 2204 mayform a branch of a larger folder hierarchy 2204 for the device.

[0166] In one implementation, visual indicators 508 corresponding to aselected folder 2202 a are displayed within a display pane 2208. If auser selects a visual indicator 508 e, the STB 102 retrieves anddisplays a web page 1602 referenced by the link 506 l of the PIO 502 e.The web page 1602 may be displayed within a detail pane 2210 using abrowser 1604 as discussed in relation to FIG. 16.

[0167]FIG. 23 illustrates one embodiment of a system 2300 for providingsupplemental information related to a television program. The systemincludes the display component 702 and communication component 1502, asdescribed above in connection with FIGS. 7 and 15. These components 702,1502 may be adapted to provide supplemental information. The systemfurther includes one or more PIOs 502 stored on a computer-readablemedium, such as a memory 306.

[0168] In certain embodiments, the system includes a retrieval component2302. The retrieval component 2302 accesses the link 506 l (asillustrated by the dashed line). The retrieval component 2302 directsthe communication component 1502 to request the supplemental informationreferenced by the link 506 l. The communication component 1502 providesthe supplemental information to the retrieval component 2302, whichdisplays the supplemental information using the display component 702.In one implementation, the components 702, 1502, 2302 are embodied as abrowser 1604 as discussed in relation to FIG. 16.

[0169] Based on the foregoing, the present invention offers a number ofadvantages not available in conventional approaches. The presentinvention allows users to quickly and efficiently access televisionprogramming within an entertainment system without the need for aconventional, grid-based EPG 402. PIOs 502 may be organized according touser-specified criteria and transmitted between various types ofentertainment systems and devices. Television programs may be recordedand played back while shielding a user from the details of the program'sbroadcast time and channel.

[0170] While specific embodiments and applications of the presentinvention have been illustrated and described, it is to be understoodthat the invention is not limited to the precise configuration andcomponents disclosed herein. Various modifications, changes, andvariations apparent to those skilled in the art may be made in thearrangement, operation, and details of the methods and systems of thepresent invention disclosed herein without departing from the spirit andscope of the invention.

What is claimed is:
 1. A method for providing supplemental informationrelated to a television program, the method comprising: storing aprogram interface object (PIO) within an entertainment system, the PIOcomprising a plurality of attributes, at least one attribute comprisinga link to supplemental information related to the television program,the PIO further comprising a plurality of user-selectable actionsperformable by the entertainment system in connection with thetelevision program; retrieving the supplemental information referencedby the link; and displaying the supplemental information on a displaydevice associated with the entertainment system.
 2. The method of claim1, wherein retrieving comprises: establishing communication with asupplemental information server; requesting the supplemental informationreferenced by the link from the supplemental information server; andreceiving the requested supplemental information.
 3. The method of claim2, wherein the supplemental information server comprises an Internetserver.
 4. The method of claim 1, wherein the link comprises a UniformResource Locator (URL).
 5. The method of claim 1, wherein the linkcomprises a file name.
 6. The method of claim 1, wherein the PIO furthercomprises a visual indicator, the method further comprising: displayingthe visual indicator in a graphical user interface; and detecting a userselection of the visual indicator.
 7. The method of claim 6, wherein thevisual indicator comprises a graphical icon.
 8. The method of claim 6,wherein the PIO further comprises a first action configured to displaythe supplemental information referenced by the link, the method furthercomprising: displaying a list of the plurality of user-selectableactions associated with the PIO; and detecting a user selection of thefirst action.
 9. The method of claim 1, wherein displaying comprises:automatically displaying the supplemental information in response to thetelevision program being presented by the entertainment system.
 10. Themethod of claim 1, wherein displaying comprises: automaticallydisplaying the supplemental information prior to the television programbeing presented by the entertainment system.
 11. The method of claim 1,wherein displaying comprises: launching a browser configured to displaythe supplemental information; and displaying the supplementalinformation within the browser.
 12. The method of claim 1, wherein thePIO comprises a set of link attributes, each link attribute comprising adifferent link to a set of supplemental information.
 13. The method ofclaim 12, further comprising: displaying a list of link attributesassociated with the PIO; and receiving a user selection of a particularlink attribute from the list of link attributes.
 14. The method of claim1, wherein the supplemental information comprises an extensible MarkupLanguage (XML) document.
 15. The method of claim 1, wherein the PIO isselected from the group consisting of a JavaBean object, a DistributedComponent Object Model (DCOM) object, and an extensible Markup Language(XML) object.
 16. The method of claim 1, wherein the entertainmentsystem is selected from the group consisting of a personal computer, aninteractive television (ITV) system, and a personal digital assistant(PDA).
 17. A method for initiating a commercial transaction within anentertainment system, the method comprising: storing a program interfaceobject (PIO) within the entertainment system, the PIO comprising aplurality of attributes, at least one attribute comprising a link to acommercial server, the PIO further comprising a plurality ofuser-selectable actions performable by the entertainment system inconnection with the television program; establishing communication withthe commercial server referenced by the link; and initiating acommercial transaction with the commercial server using the link. 18.The method of claim 17, wherein the link comprises a Uniform ResourceLocator (URL) and wherein establishing comprises: directing a browser tothe URL.
 19. The method of claim 17, wherein the PIO comprises userinformation necessary for initiating the commercial transaction andwherein initiating comprises: transmitting the user information to thecommercial server.
 20. The method of claim 19, wherein the userinformation comprises a user's payment information, and wherein sendingcomprises: encrypting the payment information prior to transmission tothe commercial server.
 21. The method of claim 19, wherein the userinformation comprises a digital certificate.
 22. The method of claim 19,wherein user information is selected from the group consisting of aname, a user ID, a password, an address, a telephone number, and paymentinformation.
 23. The method of claim 17, wherein the link identifies aparticular product from a set of products, and wherein initiatingcomprises: placing an order for the identified product.
 24. The methodof claim 23, wherein the commercial server comprises a video-on-demandserver, and wherein the identified product comprises a license forvideo-on-demand content.
 25. The method of claim 23, wherein thecommercial transaction comprises a sales transaction for a particularproduct and wherein initiating further comprises: prompting the user toapprove the sales transaction; receiving an indication of approval fromthe user.
 26. The method of claim 17, wherein the PIO further comprisesa visual indicator, the method further comprising: displaying the visualindicator in a graphical user interface; and detecting a user selectionof the visual indicator.
 27. The method of claim 26, wherein the visualindicator comprises a graphical icon.
 28. The method of claim 26,wherein the PIO further comprises a first action configured to initiatea commercial transaction, the method further comprising: detecting auser selection of the first action.
 29. The method of claim 17, whereinthe PIO comprises a set of link attributes, each link attributecomprising a link for initiating a different commercial transaction. 30.The method of claim 17, wherein the link comprises a Uniform ResourceLocator (URL).
 31. The method of claim 17, wherein the PIO is selectedfrom the group consisting of a JavaBean object, a Distributed ComponentObject Model (DCOM) object, and an extensible Markup Language (XML)object.
 32. The method of claim 17, wherein the entertainment system isselected from the group consisting of a personal computer, aninteractive television (ITV) system, and a personal digital assistant(PDA).
 33. A method for providing interactive communication related to atelevision program within an entertainment system, the methodcomprising: storing a program interface object (PIO) within theentertainment system, the PIO comprising a plurality of attributescarrying information about a television program, at least one attributecomprising a link to a chat server, and a plurality of user-selectableactions performable by the entertainment system in connection with thetelevision program; establishing a chat session with the chat serverreferenced by the link; and connecting to a chat room hosted on the chatserver.
 34. The method of claim 33, where establishing comprises:launching an instant messaging client on the entertainment system. 35.The method of claim 33, wherein the link comprises an indication of achat room on the chat server and wherein establishing comprises:directing the instant messaging client to the indicated chat room. 36.The method of claim 33, wherein the link comprises an indication of achat conference on the chat server and wherein establishing comprises:directing the instant messaging client to the indicated chat conference.37. A system for providing supplemental information related to atelevision program, the system comprising: computer-readable medium thatstores a program interface object (PIO), the PIO comprising a pluralityof attributes, at least one attribute comprising a link to supplementalinformation related to the television program, the PIO furthercomprising a plurality of user-selectable actions performable inconnection with the television program; a retrieval component thatretrieves the supplemental information referenced by the link; and adisplay component that displays the supplemental information on adisplay device associated with the entertainment system.
 38. The systemof claim 36, further comprising: a communication component thatestablishes communication with a supplemental information server andrequests the supplemental information referenced by the link from thesupplemental information server.
 39. The system of claim 37, wherein thesupplemental information server comprises an Internet server.
 40. Thesystem of claim 36, wherein the link comprises a Uniform ResourceLocator (URL).
 41. The system of claim 36, wherein the link comprises afile name.
 42. The system of claim 36, wherein the PIO further comprisesa visual indicator and wherein the display component is furtherconfigured to display the visual indicator in a graphical user interfaceand detect a user selection of the visual indicator.
 43. The system ofclaim 41, wherein the visual indicator comprises a graphical icon. 44.The system of claim 41, wherein the PIO further comprises a first actionconfigured to display the supplemental information referenced by thelink and wherein the display component is further configured to displaya list of the plurality of user-selectable actions associated with thePIO; and detect a user selection of the first action.
 45. The system ofclaim 36, wherein the display component is configured to automaticallydisplay the supplemental information in response to the televisionprogram being presented by the entertainment system.
 46. The system ofclaim 36, wherein the display component is configured to automaticallydisplay the supplemental information prior to the television programbeing presented by the entertainment system.
 47. The system of claim 36,wherein the display component is configured to automatically launch abrowser configured to display the supplemental information and displaythe supplemental information within the browser.
 48. The system of claim36, wherein the PIO comprises a set of link attributes, each linkattribute comprising a different link to a set of supplementalinformation.
 49. The system of claim 47, wherein the display componentis further configured to display a list of link attributes associatedwith the PIO and receive a user selection of a particular link attributefrom the list of link attributes.
 50. The system of claim 36, whereinthe supplemental information comprises an extensible Markup Language(XML) document.
 51. The system of claim 36, wherein the PIO is selectedfrom the group consisting of a JavaBean object, a Distributed ComponentObject Model (DCOM) object, and an extensible Markup Language (XML)object.
 52. A system for providing supplemental information related to atelevision program, the system comprising: means for storing a programinterface object (PIO) within an entertainment system, the PIOcomprising a plurality of attributes, at least one attribute comprisinga link to supplemental information related to the television program,the PIO further comprising a plurality of user-selectable actionsperformable by the entertainment system in connection with thetelevision program; means for retrieving the supplemental informationreferenced by the link; and means for displaying the supplementalinformation on a display device associated with the entertainmentsystem.
 53. A system for initiating a commercial transaction within anentertainment system, the method comprising: means for storing a programinterface object (PIO) within the entertainment system, the PIOcomprising a plurality of attributes, at least one attribute comprisinga link to a commercial server, the PIO further comprising a plurality ofuser-selectable actions performable by the entertainment system inconnection with the television program; means for establishingcommunication with the commercial server referenced by the link; andmeans initiating a commercial transaction with the commercial serverusing the link.